package org.wukongcrm.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
    * 回款计划表
    */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "receivables_plan")
public class ReceivablesPlan implements Serializable {
    /**
     * 回款计划ID
     */
    @TableId(value = "receivables_plan_id", type = IdType.INPUT)
    private Integer receivablesPlanId;

    /**
     * 期数
     */
    @TableField(value = "num")
    private String num;

    /**
     * 回款ID
     */
    @TableField(value = "receivables_id")
    private Integer receivablesId;

    /**
     * 状态 1完成 0 未完成
     */
    @TableField(value = "`status`")
    private Integer status;

    /**
     * 计划回款金额
     */
    @TableField(value = "money")
    private BigDecimal money;

    /**
     * 计划回款日期
     */
    @TableField(value = "return_date")
    private Date returnDate;

    /**
     * 计划回款方式
     */
    @TableField(value = "return_type")
    private String returnType;

    /**
     * 提前几天提醒
     */
    @TableField(value = "remind")
    private Integer remind;

    /**
     * 提醒日期
     */
    @TableField(value = "remind_date")
    private Date remindDate;

    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 创建人ID
     */
    @TableField(value = "create_user_id")
    private Long createUserId;

    /**
     * 负责人ID
     */
    @TableField(value = "owner_user_id")
    private Long ownerUserId;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;

    /**
     * 附件批次ID
     */
    @TableField(value = "batch_id")
    private String batchId;

    /**
     * 实际回款金额
     */
    @TableField(value = "real_received_money")
    private BigDecimal realReceivedMoney;

    /**
     * 实际回款日期
     */
    @TableField(value = "real_return_date")
    private Date realReturnDate;

    /**
     * 未回款金额
     */
    @TableField(value = "unreceived_money")
    private BigDecimal unreceivedMoney;

    /**
     * 回款状态 0 待回款 1 回款完成 2 部分回款 3 作废 4 逾期 5 待生效
     */
    @TableField(value = "received_status")
    private Integer receivedStatus;

    /**
     * 合同ID
     */
    @TableField(value = "contract_id")
    private Integer contractId;

    /**
     * 客户ID
     */
    @TableField(value = "customer_id")
    private Integer customerId;

    private static final long serialVersionUID = 1L;
}